3.2.3. Программирование аналогового выхода (АЦП)

К программированию АЦП относятся следующие операции:

  • управление входным коммутатором.
  • запуск АЦП.
  • ожидание готовности после цикла преобразования АЦП.
  • считывание кода АЦП.

    Программное управление входным коммутатором осуществляется путем записи в регистр номера канала по адресу BASE + 02h байта с кодом номера канала, напряжение на входе которого надо измерить. В устройстве NVL08 предусмотрен программный режим запуска АЦП. Для этого необходимо записать любое число по а дресу BASE +00h. Действительное значение кода АЦП, соответствующее измеряемому напряжению формируется в буферном регистре с адресом BASE+00h только после выполнения определённой последовательности действий :

  • выбор канала
  • запуск АЦП
  • фиксация момента окончания цикла преобразования АЦП

    Окончание цикла преобразования АЦП может быть зафиксировано тремя способами :

  • программно - путем опроса бита готовности.
  • программно - путем организации задержки на время преобразования после команды запуска.
  • по прерыванию - после окончания цикла преобразования АЦП устройство NVL08 формирует прерывание на одной из следующих линий: IRQ4, IRQ5, IRQ6, IRQ10 или IRQ11. Номер прерывания выбирается с помощью перемычки на плате. Запрос на прерывание автоматически сбрасывается при чтении регистра с адресом BASE + 00h.

    Код АЦП - 12 разрядный. Он размещается с нулевого по 11 разряд шины данных. На 12 разряд выведен сигнал готовности, который сразу после запуска равен лог. "1", а после окончания цикла преобразования этот разряд устанавливается в состояние лог. "0". На 13 разряд выведен сигнал перегрузки по входу . Если 13 разряд равен лог. 1 то это означает, что входной сигнал во время преобразования превышал входной диапазон АЦП. Разряды 14 - 15 не используются и их необходимо принудительно обнулять после приема кода АЦП. В данных адаптерах базовый адрес BASE равен 300h.